将场景和可视化导出到 CARLA

本主题中描述的导出工作流程扩展了 导出到 CARLA 中描述的工作流程,以在 RoadRunner 场景和 CARLA 中显示等效的可视化效果

构建 CARLA 并添加插件

1. 从源代码构建 CARLA 。有关详细信息,请参阅构建 CARLA说明的Windows ®构建页面
注意:CARLA源代码被克隆到 ,虚幻引擎® 4.26 被克隆到 C:\tree\carla\N_N_NN\carlaC:\tree\UnrealEngine
2. 将 CARLA RoadRunner 插件复制到文件夹 C:\tree\carla\N_N_NN\carla\Unreal\CarlaUE4\Plugins
3. 更新 Microsoft ® Visual Studio ® 项目。右键单击项目文件 C:\tree\carla\N_N_NN\carla\Unreal\CarlaUE4\CarlaUE4.uproject,然后单击“Switch Unreal Engine Version”

从RoadRunner 场景中导出场景

1. 在 RoadRunner 中打开场景
2. 使用 CARLA 选项导出场景从菜单中选择“File” > “Export” > “CARLA (.fbx + .xml + .xodr)”
3. 在导出CARLA对话框中,根据需要在 Filmbox 选项卡上设置网格平铺 ,并在OpenDRIVE选项卡上设置OpenDRIVE ®选项。
4. 单击“导出”

在 CARLA 中导入 RoadRunner 地图

1. 切换到 CARLA 编辑器,即 make launch 后启动的虚幻编辑器,在下方 Content 目录中新建文件夹RoadRunner,以及两个子文件夹 Maps 和 Static;
2. 右击 Static,选择 Add/Import Content->Import to /Game/RoadRunner/Static,打开刚才保存的文件ScenarioBasic.fbx;
3. 在弹出的 MathWorks RoadRunner Import Options 窗口中,点击 Import,并如下图所示,在 FBX Scene Import Options 中修改几个关键选项,最重要的是在选项卡 Scene 中选择 Create one Blueprint asset 和 Invert Normal Maps,以及在选项卡 Static Meshes 中选择 Import Normals,然后点击 Import;
4. 右击导入的 FbxScene_ScenarioBasic,选择 Edit...,在弹出对话框的左上角 Components 选中DefaultSceneRoot,在右侧 Details 的 Transform 选项卡中修改 Mobility为Static,即设置为静态地图,然后点击上方的 Compile 并 Save;
5. 主菜单中选择 File->Save Current As...,将地图文件 ScenarioBasic.umap 保存在 Maps 文件夹中。

打包发布含 RoadRunner 地图的 CARLA 工程 、

1. 选择画面上方的Settings->Project Settings,对CARLA工程进行设置;
2. 在设置窗口左侧导航栏中,选择 Project 下的 Packaging,右上角有一个眼睛形状的按钮,会隐藏一些选项,我们需要选中 Show All Advanced Details;
3. 找到选项 List of maps to include in a packaged build,将我们导入的地图 /Game/RoadRunner/Maps/ScenarioBasic 添加进去,在原始的 CARLA 工程中已经添加了很多其他地图,如果仿真中不需要,我们可以将其删除;
4. 回到编辑器主界面,从主菜单中选择File->Save All,然后关闭编辑器。
5. 回到x64 Native Tools Command Prompt for VS 2019命令行窗口,运行make package,这一步第一次运行耗时会比较长,可能需要数个小时;
6. 浏览编译完成后显示的Package发布目录,可以在WindowsNoEditor文件夹下找到生成的CarlaUE4.exe可执行文件,这就是可用于联合仿真的CARLA可执行文件。

将 OpenDRIVE 地图文件复制到 CARLA 联合仿真目录

1. 上一步编译生成的CARLA仿真工程出发,在
\CarlaUE4\Content\Carla\Maps\OpenDRIVE 目录下找到 ScenarioBasic.xodr,这是 CARLA 存放OpenDRIVE地图文件的默认位置;
2. 将这个地图文件复制到 \CarlaUE4\Content\RoadRunner\Maps\OpenDRIVE(一定要确认正确,否则会出现找不到地图的错误)目录下,若之前没有这个文件夹,需要手动新建一个,这是联合仿真工具搜索OpenDRIVE地图文件的目录。
8. 将 Windows 环境变量 , 设置 CARLA_ROOT C:\tree\carla\N_N_NN\carla\Build\UE4Carla\N_N_NN-dirty\WindowsNoEditor

配置RoadRunner Scenario与CARLA的联合仿真环境

1. 设置环境变量 CARLA_ROOT,将其定位到刚才发布的 CARLA Package 中含有 CarlaUE4.exe 可执行文件的目录;
2. 配置RoadRunner的仿真环境文件,位于(<username>需替换为你的用户名)
C:\Users<username>\AppData\Roaming\MathWorks\RoadRunner\R2022a\Scenario\Config\SimulationConfiguration.xml
找到标记<Platform name="CARLA">,将可执行文件的路径修改为刚才发布的Package中CarlaUE4.exe的位置,在笔者的开发环境中修改为
<ExecutablePath>C:\CARLA\carla\Build\UE4Carla\0.9.13-1-g8854804f4-dirty\WindowsNoEditor\CarlaUE4.exe</ExecutablePath>
<TimeOutValues>
<Event name="SimulationStartEvent" value="30000"/>
...
</TimeOutValues>
...
<Platform name="CARLA">
<ExecutablePath>C:\tree\carla\N_N_NN\carla\Build\UE4Carla\N_N_NN-dirty\WindowsNoEditor\CarlaUE4.exe</ExecutablePath>
<StartTimeOut>60000</StartTimeOut>
</Platform>
该场景现在可在 CARLA 模拟引擎中使用。

常见问题

1. 运行协同仿真报错:The map specified on the commandline'/Game/RoadRunner/Maps/ScenarioBasic' could not be found. Exiting;或者报错:ERROR: (id: CARLA Bridge ) : CARLA Bridge: Error connecting to the CARLA server: RuntimeError('failed to generate map');
解决:确认把.xodr文件放在RoadRunner地图的OpenDRIVE目录下:D:\ue\carla\Build\UE4Carla\0.9.14-4-gf14acb257-dirty\WindowsNoEditor\CarlaUE4\Content\RoadRunner\Maps\OpenDrive\ScenarioBasic.xodr
2. 协同仿真的 xml 配置文件 C:\Users\Administrator\AppData\Roaming\MathWorks\RoadRunner\R2022b\Scenario\Config\SimulationConfiguration.xml 语法错误:
解决:xml文件内:<Parameter name="SimulationPacing" value="1"> 结尾处缺少一个斜杠。
修改为:<Parameter name="SimulationPacing" value="1"/>
3. 运行协同仿真时,虚幻界面报错:LowLevelFatalError [File:Unknown] [Line: 3214]SCS Node
/Game/RoadRunner/Maps/ScenarioBasic.ScenarioBasic C:SimpleConstructionScript 0SCs Node 0: Serial size mismatch: Got 12, Expected 301
解决:RoadRunner的地图和Carla中的地图不一致,需要重新从 RoadRunner 导出地图,并在 Carla 中使用 make package 命令编译成可执行文件。

也可以看看

CARLA 协同仿真工作流程 | 导出到至CARLA